Nous souhaitons réalisé l’étude d’une série temporelle et faire des prévisions sur celle-ci.
Cette série temporelle est le trafic mensuel d’une Compagnie aérienne de janvier 2011 à août 2019.
Nos prévisions portent sur les 8 mois de l’année 2019
Import de la base, on sélectionne la colonne des valeurs
library(readr)
data <- read_delim("Trafic-voyageurs.csv",
delim = ";", locale = locale(encoding = "ISO-8859-1"))
Rows: 104 Columns: 2
── Column specification ───────────────────────────────────────────────────────────
Delimiter: ";"
chr (1): dates
dbl (1): trafic
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data_value <- data[,2]
summary(data)
dates trafic
Length:104 Min. :220876
Class :character 1st Qu.:297154
Mode :character Median :355178
Mean :354651
3rd Qu.:407331
Max. :505190
Nous représentons nos données sous forme de série temporelle.
Une série temporelle est un ensemble de métrique mésurée sur des intervalles de temps réguliers.
Création de la série chronologique avec la librairie TSstudio :
library(TSstudio)
data_ts <- ts(data_value, start=2011, frequency=12)
plot_1_TimeSeries(data_ts)
NA
NA
#revoir l affichage car ca prend pas en compte tt 2019
data_ts_train <- window(data_ts, start = c(2011, 1), end = c(2018,12))
data_ts_test <- window(data_ts, start= c(2019,1), end = c(2019,8))
names(data)[1] <- "ds"
names(data)[2] <- "y"
data_train <- data[1:96,]
data_test <- data[97:104,]
plot(data_ts, xlim=c(2011,2020))
lines(data_ts_test, col=3)
legend("topleft", lty = 1, col=c(1,3), legend=c("Série chronologique Train", "Série chronologique Test"))
-> strong trend -> patern qui se repete, saisonnalité ?
Analyse de la saisonnalité en superposant chaque année (par mois):
-> en supprimant la tendance on voit bien la saisonnalité => saisonnalité régulière
Chaque point de notre série temporelle peut être exprimer comme une somme ou un produit de 3 composantes : - Saisonnalité (St), - Tendance (Tt), - Erreur (ϵt),
Yt=St+Tt+ϵt ou Yt=St×Tt×ϵt
La stationnarité d’une série signifique que le processus qui génère la série ne change pas dans le temps. Cela ne veut pas dire que la série ne change pas dans le temps, mais que la façon dont elle change, n’est pas modifié dans le temps.
Testons si la série est stationnaire :
library(tseries)
adf.test(data_ts) #p-value <0.5 => stationnaire
Warning in adf.test(data_ts) : p-value smaller than printed p-value
Augmented Dickey-Fuller Test
data: data_ts
Dickey-Fuller = -5.4857, Lag order = 4, p-value = 0.01
alternative hypothesis: stationary
kpss.test(data_ts)
Warning in kpss.test(data_ts) : p-value smaller than printed p-value
KPSS Test for Level Stationarity
data: data_ts
KPSS Level = 2.0803, Truncation lag parameter = 4, p-value = 0.01
Donc notre série est bien stationnaire et peut être étudiée facilement.
ggseasonplot(data_ts)
data_ts_without_trend = diff(data_ts)
ggseasonplot(data_ts_without_trend)+
labs(title = "Trafic sans la tendance",
subtitle = "Visualisation de la saisonnalité",
x="Mois",
y= "Nombre de Voyageurs")+
geom_line(size=1.1, alpha = 0.65)+
theme_fivethirtyeight()+
theme(axis.title = element_text())+
scale_color_brewer(palette = "Paired") +
theme(axis.title = element_text(), text = element_text(family = "Rubik"))
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
DECOMPOSITION : additive / Multiplicative Ts = Trend + Seasonal + Random / Ts = Trend * Seasonal * Random
decomposed_data <- decompose(data_ts_train, type="additive")
plot(decomposed_data$trend)
plot(decomposed_data$seasonal)
plot(decomposed_data$random)
boxplot(data_ts ~ cycle(data_ts))
-> on distingue des saisonnalités => faire régression ca n’a pas de sens => modèle de Buys Ballot
-> bonne repartition du bruit -> quelques outliers
checkresiduals(remainder(decomposed_data))
Warning in modeldf.default(object) :
Could not find appropriate degrees of freedom for this model.
On a tendances + saisonnalité
library(forecast)
mean <- meanf(data_ts_train, h=8)
naivem <- naive(data_ts_train, h=8)
driftm <- rwf(data_ts_train, h=8, drif=T)
snaivem <- snaive(data_ts_train, h=8)
print(summary(mean))
Forecast method: Mean
Model Information:
$mu
[1] 346667.1
$mu.se
[1] 6731.642
$sd
[1] 65956.35
$bootstrap
[1] FALSE
$call
meanf(y = data_ts_train, h = 8)
attr(,"class")
[1] "meanf"
Error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set 1.941958e-11 65611.93 55535.08 -3.855657 17.01186 2.16177 0.8254447
Forecasts:
checkresiduals(mean)
Ljung-Box test
data: Residuals from Mean
Q* = 731.64, df = 18, p-value < 2.2e-16
Model df: 1. Total lags used: 19
accuracy(mean, data_ts_test)
ME RMSE MAE MPE MAPE MASE
Training set 1.941958e-11 65611.93 55535.08 -3.855657 17.01186 2.161770
Test set 1.037870e+05 110031.92 103787.04 22.486144 22.48614 4.040036
ACF1 Theil's U
Training set 0.8254447 NA
Test set 0.0485288 2.517689
MASE : Mean Absolute Scaled Error : MAPE : Mean Absolute Percentage Error :
res = pred - val MAE = sum(abs(res))/length(val) RSS = sum(res^2) MSE = RSS/length(val) RMSE = sqrt(MSE)
La plus populaire est la MAPE
MAPE(y_pred, y_true)
$MAPE = (1/n) * Σ(|actual – forecast| / |actu0al|) * 10
“a MAPE value of 6% means that the average difference between the forecasted value and the actual value is 6%”
print(summary(mean))
Forecast method: Mean
Model Information:
$mu
[1] 346667.1
$mu.se
[1] 6731.642
$sd
[1] 65956.35
$bootstrap
[1] FALSE
$call
meanf(y = data_ts_train, h = 8)
attr(,"class")
[1] "meanf"
Error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set 1.941958e-11 65611.93 55535.08 -3.855657 17.01186 2.16177 0.8254447
Forecasts:
checkresiduals(mean)
Ljung-Box test
data: Residuals from Mean
Q* = 731.64, df = 18, p-value < 2.2e-16
Model df: 1. Total lags used: 19
accuracy(mean, data_ts_test)
ME RMSE MAE MPE MAPE MASE ACF1 Theil's U
Training set 1.941958e-11 65611.93 55535.08 -3.855657 17.01186 2.161770 0.8254447 NA
Test set 1.037870e+05 110031.92 103787.04 22.486144 22.48614 4.040036 0.0485288 2.517689
print(summary(naivem))
Forecast method: Naive method
Model Information:
Call: naive(y = data_ts_train, h = 8)
Residual sd: 36679.9508
Error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set 1896.811 36679.95 29013.27 -0.02007386 8.597313 1.129377 -0.2744236
Forecasts:
checkresiduals(naivem)
Ljung-Box test
data: Residuals from Naive method
Q* = 248.52, df = 19, p-value < 2.2e-16
Model df: 0. Total lags used: 19
accuracy(naivem, data_ts_test)
ME RMSE MAE MPE MAPE MASE ACF1 Theil's U
Training set 1896.811 36679.95 29013.27 -0.02007386 8.597313 1.129377 -0.2744236 NA
Test set 24357.125 43915.19 38328.62 4.72582164 8.499751 1.491988 0.0485288 1.063155
print(summary(driftm))
Forecast method: Random walk with drift
Model Information:
Call: rwf(y = data_ts_train, h = 8, drift = T)
Drift: 1896.8105 (se 3778.1861)
Residual sd: 36825.2032
Error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set 2.297696e-11 36630.87 28899.04 -0.5861884 8.591266 1.12493 -0.2744236
Forecasts:
checkresiduals(driftm)
Ljung-Box test
data: Residuals from Random walk with drift
Q* = 248.52, df = 18, p-value < 2.2e-16
Model df: 1. Total lags used: 19
accuracy(driftm, data_ts_test)
ME RMSE MAE MPE MAPE MASE ACF1 Theil's U
Training set 2.297696e-11 36630.87 28899.04 -0.5861884 8.591266 1.124930 -0.27442358 NA
Test set 1.582148e+04 41314.60 33586.60 2.7843152 7.582963 1.307399 0.06907259 1.007801
Annees=as.numeric(time(data_ts_train))
ts_DataFrame =data.frame(trafic=data_ts_train,X=as.numeric(Annees))
https://mpra.ub.uni-muenchen.de/77718/1/MPRA_paper_77718.pdf page 175
L’approche de BUYS-BALLOT consiste à introduire des variables indicatrices correspondant à chaque saison définit par le cycle d’observation. Pour les données trimestrielles, on intègre 4 variables indicatrices. Et pour les données mensuelles, on intègre 12 variables indicatrices.
Le modèle doit alors être estimé (sans constante) avec ces variables indicatrices.
Préparation des données.
Annees=as.numeric(time(data_ts_train))
ts_DataFrame =data.frame(trafic=data_ts_train,X=as.numeric(Annees))
Création du modèle
Regression <- lm(trafic~X,data = ts_DataFrame)
\(Xt = Zt + St + \mu t\)
La tendance Prédiction sur les données futurs.
tendance=predict(Regression)
AnneeMoisNumericFutur=seq(max(Annees)+1/12,length=8,by=1/12) #les 10 prochains mois
tendance2=predict(Regression, newdata=data.frame(X=AnneeMoisNumericFutur))
ts_DataFrame$trafic_residual <- residuals(Regression)
Définissons le mois
ts_DataFrame$mois <- round(ts_DataFrame$X - trunc(ts_DataFrame$X),digit=4)
Création du 2nd modèle avec les mois
Regression2 =lm(trafic_residual~0+as.factor(mois),data=ts_DataFrame)
Prédiction de la saisonnalité
prediction2 =predict(Regression2)
Prédiction sur les mois
MoisNumeric= round(AnneeMoisNumericFutur - trunc(AnneeMoisNumericFutur
),4)
Prediction3 =predict( Regression2, newdata= data.frame(mois=MoisNumeric))
Calculons une région de confiance avec l’erreur d’ajustement
ResidusRegression2=residuals(Regression2)
hist(ResidusRegression2)
1.96*sqrt(var(ResidusRegression2))
[1] 19226.16
L’autocorrélation de notre série temporelle correspond à la corrélation entre une mesure du trafic \(t\) et les mesures précédentes \(t - k\) ou les mesures suivantes \(t + k\).
L’auto covariance d’une variable \(Xt\) de moyenne \(\mu\) et d’écart type \(\sigma\) à un décalage \(k\) est donné par la formule
\(\gamma_k= E((X_t-\mu)(X_{t+k}-\mu))\)
On en déduit l’autocorrélation correspondante :
\(\rho_k=\frac{\gamma_k}{\sigma^2}\)
Affichons les autocorrélations de la séries grâce à un corrélogramme
ACF_Sur_Valeurs_Predites <- acf(prediction2)
Il est normal que la série soit autocorrélé totalement à elle avec un décalage nulle.
On observe une corrélation forte (0.87) avec un décalage (lag) de 12, cela correspond bien à une saisonnalité annuelle.
#Constantes
Nombre_Observations=96
decalage=12
#Estimations
moyenneMu=mean(prediction2)
sdSigma=sd(prediction2)
Serie1=prediction2[(decalage+1): 96 ]
Serie2=prediction2[ 1 :(96-decalage)]
GammaDecalage12=mean((Serie1-moyenneMu)*(Serie2-moyenneMu))*((Nombre_Observations-decalage)/(Nombre_Observations))
RhoDecalage12=GammaDecalage12/(sdSigma^2)
RhoDecalage12
[1] 0.8658622
Recalculons la valeur d’auto-corrélation obtenu en appliquant la formule.
Observons l’application de la formule, en choisissant un décalage de 12
#Constantes
Nombre_Observations=96
decalage=12
#Estimations
moyenneMu=mean(prediction2)
sdSigma=sd(prediction2)
Serie1=prediction2[(decalage+1): 96 ]
Serie2=prediction2[ 1 :(96-decalage)]
GammaDecalage12=mean((Serie1-moyenneMu)*(Serie2-moyenneMu))*((Nombre_Observations-decalage)/(Nombre_Observations))
RhoDecalage12=GammaDecalage12/(sdSigma^2)
RhoDecalage12
[1] 0.8658622
Le résultat obtenu est correct. L’auto corrélation avec un décalage de 12 est donc très forte.
De plus cette auto corrélation étant positive, cela indique une tendance croissante.
la deuxième plus forte corrélation est obsersé avec un décalage de 5, observons cela graphiquement
plot ( 1:length(prediction2), prediction2,type="l")
points((1:length(prediction2))-5,prediction2,type="l",col="red")
Cette corrélation est peu pertinente.
print(data.frame(ACF_Sur_Valeurs_Predites$lag,ACF_Sur_Valeurs_Predites$acf)[1:13,])
Après avoir étudier les auto-corrélations sur l’ensemble du modèle, Observons les auto-corrélations sur les résidus du modèle de Buys-Ballot.
plot(acf(ResidusRegression2))
Pour notre modèle, il n’y a aucune auto-corrélation significative. (symbolisé par la ligne bleu)
Affichage de la tendance
Buys_ballot_plot_tendance <- plot(data_ts,
main = "Application du modèle de Buys_Ballot",
xlab = "Années",
ylab = "Nombre de Voyageurs")
#droite de tendance
lines(Annees,tendance,col="blue",lwd=2)
#prédiction de la tendance futur
lines(AnneeMoisNumericFutur,tendance2,col="red")
NA
NA
Affichage du modèle de Buys Ballot
Buys_ballot_plot <- plot(data_ts,
main = "Application du modèle de Buys_Ballot",
xlab = "Années",
ylab = "Nombre de Voyageurs")
#prédiction du modèle de Buys ballot
lines(Annees,tendance+prediction2,col="blue",lwd=2)
#Interval de confiance
polygon(c(AnneeMoisNumericFutur,rev(AnneeMoisNumericFutur)),
c(tendance2+Prediction3-1.96*sqrt(var(ResidusRegression2)),
rev(tendance2+Prediction3+1.96*sqrt(var(ResidusRegression2)))),
col="cadetblue1",border=NA)
#Prediction des valeurs
lines(AnneeMoisNumericFutur,tendance2+Prediction3,col="blue",lwd=2)
lines(data_ts_test,col="black",lwd=3)
Affichage de la prédiction sur les 8 mois de 2020
Buys_ballot_plot <- plot(data_ts_test,
main = "Application du modèle de Buys_Ballot",
xlab = "Années",
ylab = "Nombre de Voyageurs")
#prédiction du modèle de Buys ballot
lines(Annees,tendance+prediction2,col="blue",lwd=2)
#Interval de confiance
polygon(c(AnneeMoisNumericFutur,rev(AnneeMoisNumericFutur)),
c(tendance2+Prediction3-1.96*sqrt(var(ResidusRegression2)),
rev(tendance2+Prediction3+1.96*sqrt(var(ResidusRegression2)))),
col="cadetblue1",border=NA)
#Prediction des valeurs
lines(AnneeMoisNumericFutur,tendance2+Prediction3,col="blue",lwd=2)
lines(data_ts_test,col="black",lwd=3)
Préparation DataFrame pour affichage ggplot
DataAffichageGGplot = as.data.frame(data_ts)
DataAffichageGGplot$Annees = c(Annees, AnneeMoisNumericFutur)
DataAffichageGGplot$AnneesRound = round(DataAffichageGGplot$Annees)
DataAffichageGGplot$PredictionTendanceBuysBalot = c(tendance ,tendance2)
DataAffichageGGplot$BuysBalotModele = c(tendance+prediction2,tendance2+Prediction3 )
Reproduisons les graphiques avec ggplot2 pour un résultat plus professsionnel.
Affichage_Prediction(DataAffichageGGplot, DataAffichageGGplot$BuysBalotModele)
Nous avons réussi à ajuster une droite de régression. on remarque que la prédiction semble bien correspondre à la réalité si on fait abstraction du dernier mois où le nombre de voyageurs a bien plus chuté que la prédiction du modèle de Buys-Balot.
Comparons avec un ajustement local réalisé par lissage moyennes mobiles.
Mettre belle formule en latex ici
fcst_se <- ses(data_ts_train, h = 8)
print(summary(fcst_se))
Forecast method: Simple exponential smoothing
Model Information:
Simple exponential smoothing
Call:
ses(y = data_ts_train, h = 8)
Smoothing parameters:
alpha = 0.2559
Initial states:
l = 258126.0245
sigma: 31480.96
AIC AICc BIC
2430.727 2430.988 2438.420
Error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set 7057.127 31151.31 25752.89 1.326234 7.684321 1.002462 0.0711143
Forecasts:
checkresiduals(fcst_se)
Ljung-Box test
data: Residuals from Simple exponential smoothing
Q* = 144.66, df = 17, p-value < 2.2e-16
Model df: 2. Total lags used: 19
fcst_ets <- forecast(fit_ets, h=8)
plot(fcst_ets)
lines(data_ts_test, col="red")
df_ets = as.data.frame(fcst_ets)
predict_value_ets = df_ets$`Point Forecast`
MAPE(predict_value_ets, data_ts_test)*100
[1] 3.005848
Fit Exponential Smoothing model -> trouve le meilleur lissage expo
fit_ets <- ets(data_ts_train)
print(summary(fit_ets))
ETS(A,A,A)
Call:
ets(y = data_ts_train)
Smoothing parameters:
alpha = 0.1568
beta = 1e-04
gamma = 1e-04
Initial states:
l = 248267.1099
b = 2163.3982
s = -17928.3 -29535.73 9295.935 11005.81 -57117.85 -7708.17
38272.64 14592.34 16899.53 34763.15 -7344.204 -5195.15
sigma: 11014.45
AIC AICc BIC
2241.611 2249.458 2285.205
Training set error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set -458.6799 10054.77 7831.554 -0.2623253 2.371375 0.3048527 0.09626331
checkresiduals(fit_ets)
Ljung-Box test
data: Residuals from ETS(A,A,A)
Q* = 7.1794, df = 3, p-value = 0.06639
Model df: 16. Total lags used: 19
fcst_ets <- forecast(fit_ets, h=8)
plot(fcst_ets)
lines(data_ts_test, col="red")
df_ets = as.data.frame(fcst_ets)
predict_value_ets = df_ets$`Point Forecast`
MAPE(predict_value_ets, data_ts_test)*100
[1] 3.005848
Affichage GGplot
DataAffichageGGplot$ModeleLissageExponentielle <- c(fcst_ets$fitted ,predict_value_ets )
Affichage_Prediction(DataAffichageGGplot, DataAffichageGGplot$ModeleLissageExponentielle)
Warning: Removed 98 row(s) containing missing values (geom_path).
Warning: Removed 98 row(s) containing missing values (geom_path).
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
A FAIRE
ARIMA : AutoRegressive Integrated Moving Average
Le modèle ARIMA est une combinaison du modèle ARMA combiné à une différentiation (le Integrated)
Différentiation = rétirer les tendances -> tendance linéaire : une différenciation -> tendance quadradique : deux différenciations
Le modèle SARIMA est une combinaison du modèle ARIMA qui prend en compte la composante saisonniaire.
auto.arima prend en compte les saisonnalités, comme on peut le voir dans le modèle selectionné : (0,1,1)(0,1,1)[12]
# retourne les meilleurs paramètres
# d=1 enleve la tendance
# D=1 enleve la saisonnalité
# => avoir des données stationnaires
# trace : voir les résultats
fit_arima <- auto.arima(data_ts_train, d=1, D=1, stepwise = FALSE, approximation = FALSE, trace=TRUE)
ARIMA(0,1,0)(0,1,0)[12] : 1846.398
ARIMA(0,1,0)(0,1,1)[12] : 1833.134
ARIMA(0,1,0)(0,1,2)[12] : 1835.211
ARIMA(0,1,0)(1,1,0)[12] : 1833.056
ARIMA(0,1,0)(1,1,1)[12] : 1835.09
ARIMA(0,1,0)(1,1,2)[12] : Inf
ARIMA(0,1,0)(2,1,0)[12] : 1835.207
ARIMA(0,1,0)(2,1,1)[12] : 1837.012
ARIMA(0,1,0)(2,1,2)[12] : 1836.461
ARIMA(0,1,1)(0,1,0)[12] : 1814.951
ARIMA(0,1,1)(0,1,1)[12] : 1801.155
ARIMA(0,1,1)(0,1,2)[12] : 1803.362
ARIMA(0,1,1)(1,1,0)[12] : 1803.592
ARIMA(0,1,1)(1,1,1)[12] : 1803.361
ARIMA(0,1,1)(1,1,2)[12] : Inf
ARIMA(0,1,1)(2,1,0)[12] : 1805.004
ARIMA(0,1,1)(2,1,1)[12] : 1805.397
ARIMA(0,1,1)(2,1,2)[12] : Inf
ARIMA(0,1,2)(0,1,0)[12] : 1816.915
ARIMA(0,1,2)(0,1,1)[12] : 1803.033
ARIMA(0,1,2)(0,1,2)[12] : 1805.296
ARIMA(0,1,2)(1,1,0)[12] : 1805.702
ARIMA(0,1,2)(1,1,1)[12] : 1805.295
ARIMA(0,1,2)(1,1,2)[12] : Inf
ARIMA(0,1,2)(2,1,0)[12] : 1807.026
ARIMA(0,1,2)(2,1,1)[12] : 1807.441
ARIMA(0,1,3)(0,1,0)[12] : 1817.787
ARIMA(0,1,3)(0,1,1)[12] : Inf
ARIMA(0,1,3)(0,1,2)[12] : Inf
ARIMA(0,1,3)(1,1,0)[12] : Inf
ARIMA(0,1,3)(1,1,1)[12] : Inf
ARIMA(0,1,3)(2,1,0)[12] : Inf
ARIMA(0,1,4)(0,1,0)[12] : 1820.052
ARIMA(0,1,4)(0,1,1)[12] : Inf
ARIMA(0,1,4)(1,1,0)[12] : Inf
ARIMA(0,1,5)(0,1,0)[12] : Inf
ARIMA(1,1,0)(0,1,0)[12] : 1825.579
ARIMA(1,1,0)(0,1,1)[12] : 1812.512
ARIMA(1,1,0)(0,1,2)[12] : 1814.657
ARIMA(1,1,0)(1,1,0)[12] : 1813.2
ARIMA(1,1,0)(1,1,1)[12] : 1814.614
ARIMA(1,1,0)(1,1,2)[12] : 1816.192
ARIMA(1,1,0)(2,1,0)[12] : 1815.227
ARIMA(1,1,0)(2,1,1)[12] : Inf
ARIMA(1,1,0)(2,1,2)[12] : 1817.796
ARIMA(1,1,1)(0,1,0)[12] : 1816.841
ARIMA(1,1,1)(0,1,1)[12] : 1802.853
ARIMA(1,1,1)(0,1,2)[12] : 1805.117
ARIMA(1,1,1)(1,1,0)[12] : 1805.653
ARIMA(1,1,1)(1,1,1)[12] : Inf
ARIMA(1,1,1)(1,1,2)[12] : Inf
ARIMA(1,1,1)(2,1,0)[12] : Inf
ARIMA(1,1,1)(2,1,1)[12] : Inf
ARIMA(1,1,2)(0,1,0)[12] : 1819.234
ARIMA(1,1,2)(0,1,1)[12] : 1805.22
ARIMA(1,1,2)(0,1,2)[12] : 1807.539
ARIMA(1,1,2)(1,1,0)[12] : 1807.381
ARIMA(1,1,2)(1,1,1)[12] : 1807.538
ARIMA(1,1,2)(2,1,0)[12] : 1808.925
ARIMA(1,1,3)(0,1,0)[12] : 1820.05
ARIMA(1,1,3)(0,1,1)[12] : 1806.055
ARIMA(1,1,3)(1,1,0)[12] : 1808.732
ARIMA(1,1,4)(0,1,0)[12] : Inf
ARIMA(2,1,0)(0,1,0)[12] : 1824.435
ARIMA(2,1,0)(0,1,1)[12] : 1811.07
ARIMA(2,1,0)(0,1,2)[12] : 1813.287
ARIMA(2,1,0)(1,1,0)[12] : 1811.619
ARIMA(2,1,0)(1,1,1)[12] : 1813.247
ARIMA(2,1,0)(1,1,2)[12] : Inf
ARIMA(2,1,0)(2,1,0)[12] : 1813.821
ARIMA(2,1,0)(2,1,1)[12] : 1815.872
ARIMA(2,1,1)(0,1,0)[12] : Inf
ARIMA(2,1,1)(0,1,1)[12] : Inf
ARIMA(2,1,1)(0,1,2)[12] : Inf
ARIMA(2,1,1)(1,1,0)[12] : Inf
ARIMA(2,1,1)(1,1,1)[12] : Inf
ARIMA(2,1,1)(2,1,0)[12] : Inf
ARIMA(2,1,2)(0,1,0)[12] : Inf
ARIMA(2,1,2)(0,1,1)[12] : Inf
ARIMA(2,1,2)(1,1,0)[12] : Inf
ARIMA(2,1,3)(0,1,0)[12] : Inf
ARIMA(3,1,0)(0,1,0)[12] : 1823.646
ARIMA(3,1,0)(0,1,1)[12] : 1808.49
ARIMA(3,1,0)(0,1,2)[12] : 1810.542
ARIMA(3,1,0)(1,1,0)[12] : 1808.594
ARIMA(3,1,0)(1,1,1)[12] : 1810.321
ARIMA(3,1,0)(2,1,0)[12] : 1810.708
ARIMA(3,1,1)(0,1,0)[12] : Inf
ARIMA(3,1,1)(0,1,1)[12] : Inf
ARIMA(3,1,1)(1,1,0)[12] : Inf
ARIMA(3,1,2)(0,1,0)[12] : Inf
ARIMA(4,1,0)(0,1,0)[12] : 1823.996
ARIMA(4,1,0)(0,1,1)[12] : 1810.199
ARIMA(4,1,0)(1,1,0)[12] : 1810.845
ARIMA(4,1,1)(0,1,0)[12] : Inf
ARIMA(5,1,0)(0,1,0)[12] : 1825.055
Best model: ARIMA(0,1,1)(0,1,1)[12]
print(summary(fit_arima))
Series: data_ts_train
ARIMA(0,1,1)(0,1,1)[12]
Coefficients:
ma1 sma1
-0.7675 -0.5465
s.e. 0.0977 0.1295
sigma^2 = 138827719: log likelihood = -897.43
AIC=1800.85 AICc=1801.16 BIC=1808.11
Training set error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set 805.2378 10822.93 7747.841 0.2158443 2.213481 0.3015941 0.03453594
checkresiduals(fit_arima)
Ljung-Box test
data: Residuals from ARIMA(0,1,1)(0,1,1)[12]
Q* = 10.898, df = 17, p-value = 0.8618
Model df: 2. Total lags used: 19
fcst_arima <- forecast(fit_arima, h=8)
plot(fcst_arima)
lines(data_ts_test, col='red')
df_arima = as.data.frame(fcst_arima)
predict_value_arima = df_arima$`Point Forecast`
MAPE(predict_value_arima, data_ts_test)*100
[1] 2.814135
Affichage GGplot
DataAffichageGGplot$ModeleArima <- c(fit_arima$fitted ,predict_value_arima )
Affichage_Prediction(DataAffichageGGplot, DataAffichageGGplot$ModeleArima)
Warning: Removed 98 row(s) containing missing values (geom_path).
Warning: Removed 98 row(s) containing missing values (geom_path).
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Préparation données
library(zoo)
data_train$ds <- as.Date( as.yearmon(time(data_ts_train)))
library(prophet)
model_prophet <- prophet(data_train)
Disabling weekly seasonality. Run prophet with weekly.seasonality=TRUE to override this.
Disabling daily seasonality. Run prophet with daily.seasonality=TRUE to override this.
forecast_prophet <- make_future_dataframe(model_prophet, periods = 8, freq = 'month')
AAPLfc <- predict(model_prophet, forecast_prophet)
tail(AAPLfc[c("ds", "yhat", "yhat_lower", "yhat")])
dyplot.prophet(model_prophet, AAPLfc)
# data_pp <- subset(AAPLfc, select=c("yhat"))
# data_pp_ts <- ts(data_tttt, start=2011, frequency=12)
# data_pp_ts_w <- window(data_pp_ts, start= c(2019,1), end = c(2019,8))
#
#
#
# plot(data_ts)
# lines(data_pp_ts_w, col="red")
#
# MAPE(data_pp_ts_w, data_ts_test)*100
Affichage GGplot
DataAffichageGGplot$ProphetModele <- AAPLfc$yhat
Affichage_Prediction(DataAffichageGGplot, DataAffichageGGplot$ProphetModele)
Warning: Removed 98 row(s) containing missing values (geom_path).
Warning: Removed 98 row(s) containing missing values (geom_path).
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
scale_factors <- c(mean(data$y), sd(data$y))
scaled_train <- data %>%
dplyr::select(y) %>%
dplyr::mutate(y = (y - scale_factors[1]) / scale_factors[2])
scaled_train
prediction <- 12
lag <- prediction
On veut prendre l’année précedente pour apprendre > lag de 12, en réalité ca fait 12 - 1 pour avoir à chaque prédiction basée sur 12 valeurs
puis en transforme en array 3D car le modèle LSTM prendre un tensor de format 3D [samples, timesteps, features] samples : nbr d’observation par batchs timesteps : lag features : nbr de valeur predites
scaled_train <- as.matrix(scaled_train)
# we lag the data 11 times and arrange that into columns
x_train_data <- t(sapply(
1:(length(scaled_train) - lag - prediction + 1),
function(x) scaled_train[x:(x + lag - 1), 1]
))
# now we transform it into 3D form
x_train_arr <- array(
data = as.numeric(unlist(x_train_data)),
dim = c(
nrow(x_train_data),
lag,
1
)
)
#(x_train_data)
#length(x_train_arr)
#head(x_train_arr)
y_train_data
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] -1.45092134 -1.59595097 -0.99469303 -1.04460954 -0.84009488 -0.52095818 -1.22091923 -1.91334273
[2,] -1.59595097 -0.99469303 -1.04460954 -0.84009488 -0.52095818 -1.22091923 -1.91334273 -0.89284333
[3,] -0.99469303 -1.04460954 -0.84009488 -0.52095818 -1.22091923 -1.91334273 -0.89284333 -1.03305294
[4,] -1.04460954 -0.84009488 -0.52095818 -1.22091923 -1.91334273 -0.89284333 -1.03305294 -1.35835411
[5,] -0.84009488 -0.52095818 -1.22091923 -1.91334273 -0.89284333 -1.03305294 -1.35835411 -1.21451161
[6,] -0.52095818 -1.22091923 -1.91334273 -0.89284333 -1.03305294 -1.35835411 -1.21451161 -0.81260504
[7,] -1.22091923 -1.91334273 -0.89284333 -1.03305294 -1.35835411 -1.21451161 -0.81260504 -0.80282198
[8,] -1.91334273 -0.89284333 -1.03305294 -1.35835411 -1.21451161 -0.81260504 -0.80282198 -0.46919662
[9,] -0.89284333 -1.03305294 -1.35835411 -1.21451161 -0.81260504 -0.80282198 -0.46919662 -0.55997601
[10,] -1.03305294 -1.35835411 -1.21451161 -0.81260504 -0.80282198 -0.46919662 -0.55997601 -0.48846239
[11,] -1.35835411 -1.21451161 -0.81260504 -0.80282198 -0.46919662 -0.55997601 -0.48846239 -0.01648678
[12,] -1.21451161 -0.81260504 -0.80282198 -0.46919662 -0.55997601 -0.48846239 -0.01648678 -0.81645247
[13,] -0.81260504 -0.80282198 -0.46919662 -0.55997601 -0.48846239 -0.01648678 -0.81645247 -1.52307859
[14,] -0.80282198 -0.46919662 -0.55997601 -0.48846239 -0.01648678 -0.81645247 -1.52307859 -0.52175913
[15,] -0.46919662 -0.55997601 -0.48846239 -0.01648678 -0.81645247 -1.52307859 -0.52175913 -0.39312043
[16,] -0.55997601 -0.48846239 -0.01648678 -0.81645247 -1.52307859 -0.52175913 -0.39312043 -0.91594223
[17,] -0.48846239 -0.01648678 -0.81645247 -1.52307859 -0.52175913 -0.39312043 -0.91594223 -1.09634249
[18,] -0.01648678 -0.81645247 -1.52307859 -0.52175913 -0.39312043 -0.91594223 -1.09634249 -0.35724919
[19,] -0.81645247 -1.52307859 -0.52175913 -0.39312043 -0.91594223 -1.09634249 -0.35724919 -0.44356614
[20,] -1.52307859 -0.52175913 -0.39312043 -0.91594223 -1.09634249 -0.35724919 -0.44356614 0.30648305
[21,] -0.52175913 -0.39312043 -0.91594223 -1.09634249 -0.35724919 -0.44356614 0.30648305 0.04032364
[22,] -0.39312043 -0.91594223 -1.09634249 -0.35724919 -0.44356614 0.30648305 0.04032364 0.03155607
[23,] -0.91594223 -1.09634249 -0.35724919 -0.44356614 0.30648305 0.04032364 0.03155607 0.38637807
[24,] -1.09634249 -0.35724919 -0.44356614 0.30648305 0.04032364 0.03155607 0.38637807 -0.35427423
[25,] -0.35724919 -0.44356614 0.30648305 0.04032364 0.03155607 0.38637807 -0.35427423 -0.98731282
[26,] -0.44356614 0.30648305 0.04032364 0.03155607 0.38637807 -0.35427423 -0.98731282 -0.11910883
[27,] 0.30648305 0.04032364 0.03155607 0.38637807 -0.35427423 -0.98731282 -0.11910883 -0.07126621
[28,] 0.04032364 0.03155607 0.38637807 -0.35427423 -0.98731282 -0.11910883 -0.07126621 -0.60282698
[29,] 0.03155607 0.38637807 -0.35427423 -0.98731282 -0.11910883 -0.07126621 -0.60282698 -0.22238880
[30,] 0.38637807 -0.35427423 -0.98731282 -0.11910883 -0.07126621 -0.60282698 -0.22238880 -0.14521130
[31,] -0.35427423 -0.98731282 -0.11910883 -0.07126621 -0.60282698 -0.22238880 -0.14521130 -0.14605516
[32,] -0.98731282 -0.11910883 -0.07126621 -0.60282698 -0.22238880 -0.14521130 -0.14605516 0.45424450
[33,] -0.11910883 -0.07126621 -0.60282698 -0.22238880 -0.14521130 -0.14605516 0.45424450 0.11029257
[34,] -0.07126621 -0.60282698 -0.22238880 -0.14521130 -0.14605516 0.45424450 0.11029257 -0.15412190
[35,] -0.60282698 -0.22238880 -0.14521130 -0.14605516 0.45424450 0.11029257 -0.15412190 0.66984377
[36,] -0.22238880 -0.14521130 -0.14605516 0.45424450 0.11029257 -0.15412190 0.66984377 -0.03632466
[37,] -0.14521130 -0.14605516 0.45424450 0.11029257 -0.15412190 0.66984377 -0.03632466 -0.64978282
[38,] -0.14605516 0.45424450 0.11029257 -0.15412190 0.66984377 -0.03632466 -0.64978282 0.32943892
[39,] 0.45424450 0.11029257 -0.15412190 0.66984377 -0.03632466 -0.64978282 0.32943892 0.39741977
[40,] 0.11029257 -0.15412190 0.66984377 -0.03632466 -0.64978282 0.32943892 0.39741977 -0.23610512
[41,] -0.15412190 0.66984377 -0.03632466 -0.64978282 0.32943892 0.39741977 -0.23610512 0.03304356
[42,] 0.66984377 -0.03632466 -0.64978282 0.32943892 0.39741977 -0.23610512 0.03304356 0.09523180
[43,] -0.03632466 -0.64978282 0.32943892 0.39741977 -0.23610512 0.03304356 0.09523180 0.18124839
[44,] -0.64978282 0.32943892 0.39741977 -0.23610512 0.03304356 0.09523180 0.18124839 0.82876134
[45,] 0.32943892 0.39741977 -0.23610512 0.03304356 0.09523180 0.18124839 0.82876134 0.72837052
[46,] 0.39741977 -0.23610512 0.03304356 0.09523180 0.18124839 0.82876134 0.72837052 0.43035895
[47,] -0.23610512 0.03304356 0.09523180 0.18124839 0.82876134 0.72837052 0.43035895 0.68470430
[48,] 0.03304356 0.09523180 0.18124839 0.82876134 0.72837052 0.43035895 0.68470430 0.33398719
[49,] 0.09523180 0.18124839 0.82876134 0.72837052 0.43035895 0.68470430 0.33398719 -0.45334920
[50,] 0.18124839 0.82876134 0.72837052 0.43035895 0.68470430 0.33398719 -0.45334920 0.70019415
[51,] 0.82876134 0.72837052 0.43035895 0.68470430 0.33398719 -0.45334920 0.70019415 0.85530720
[52,] 0.72837052 0.43035895 0.68470430 0.33398719 -0.45334920 0.70019415 0.85530720 0.13284797
[53,] 0.43035895 0.68470430 0.33398719 -0.45334920 0.70019415 0.85530720 0.13284797 0.57919310
[54,] 0.68470430 0.33398719 -0.45334920 0.70019415 0.85530720 0.13284797 0.57919310 0.64756012
[55,] 0.33398719 -0.45334920 0.70019415 0.85530720 0.13284797 0.57919310 0.64756012 0.56636356
[56,] -0.45334920 0.70019415 0.85530720 0.13284797 0.57919310 0.64756012 0.56636356 1.26098968
[57,] 0.70019415 0.85530720 0.13284797 0.57919310 0.64756012 0.56636356 1.26098968 1.04333082
[58,] 0.85530720 0.13284797 0.57919310 0.64756012 0.56636356 1.26098968 1.04333082 0.96081840
[59,] 0.13284797 0.57919310 0.64756012 0.56636356 1.26098968 1.04333082 0.96081840 1.48700134
[60,] 0.57919310 0.64756012 0.56636356 1.26098968 1.04333082 0.96081840 1.48700134 0.72658268
[61,] 0.64756012 0.56636356 1.26098968 1.04333082 0.96081840 1.48700134 0.72658268 -0.07816013
[62,] 0.56636356 1.26098968 1.04333082 0.96081840 1.48700134 0.72658268 -0.07816013 1.13074907
[63,] 1.26098968 1.04333082 0.96081840 1.48700134 0.72658268 -0.07816013 1.13074907 1.17565963
[64,] 1.04333082 0.96081840 1.48700134 0.72658268 -0.07816013 1.13074907 1.17565963 0.65421089
[65,] 0.96081840 1.48700134 0.72658268 -0.07816013 1.13074907 1.17565963 0.65421089 0.70030857
[66,] 1.48700134 0.72658268 -0.07816013 1.13074907 1.17565963 0.65421089 0.70030857 0.86733579
[67,] 0.72658268 -0.07816013 1.13074907 1.17565963 0.65421089 0.70030857 0.86733579 0.98709251
[68,] -0.07816013 1.13074907 1.17565963 0.65421089 0.70030857 0.86733579 0.98709251 1.76719172
[69,] 1.13074907 1.17565963 0.65421089 0.70030857 0.86733579 0.98709251 1.76719172 1.27147358
[70,] 1.17565963 0.65421089 0.70030857 0.86733579 0.98709251 1.76719172 1.27147358 1.56630995
[71,] 0.65421089 0.70030857 0.86733579 0.98709251 1.76719172 1.27147358 1.56630995 1.47737561
[72,] 0.70030857 0.86733579 0.98709251 1.76719172 1.27147358 1.56630995 1.47737561 1.22696350
[73,] 0.86733579 0.98709251 1.76719172 1.27147358 1.56630995 1.47737561 1.22696350 0.16621623
[74,] 0.98709251 1.76719172 1.27147358 1.56630995 1.47737561 1.22696350 0.16621623 1.46842210
[75,] 1.76719172 1.27147358 1.56630995 1.47737561 1.22696350 0.16621623 1.46842210 1.51729451
[76,] 1.27147358 1.56630995 1.47737561 1.22696350 0.16621623 1.46842210 1.51729451 0.84742640
[77,] 1.56630995 1.47737561 1.22696350 0.16621623 1.46842210 1.51729451 0.84742640 1.02187673
[78,] 1.47737561 1.22696350 0.16621623 1.46842210 1.51729451 0.84742640 1.02187673 1.27364760
[79,] 1.22696350 0.16621623 1.46842210 1.51729451 0.84742640 1.02187673 1.27364760 1.24216730
[80,] 0.16621623 1.46842210 1.51729451 0.84742640 1.02187673 1.27364760 1.24216730 1.80211897
[81,] 1.46842210 1.51729451 0.84742640 1.02187673 1.27364760 1.24216730 1.80211897 1.55941604
[,9] [,10] [,11] [,12]
[1,] -0.89284333 -1.03305294 -1.35835411 -1.21451161
[2,] -1.03305294 -1.35835411 -1.21451161 -0.81260504
[3,] -1.35835411 -1.21451161 -0.81260504 -0.80282198
[4,] -1.21451161 -0.81260504 -0.80282198 -0.46919662
[5,] -0.81260504 -0.80282198 -0.46919662 -0.55997601
[6,] -0.80282198 -0.46919662 -0.55997601 -0.48846239
[7,] -0.46919662 -0.55997601 -0.48846239 -0.01648678
[8,] -0.55997601 -0.48846239 -0.01648678 -0.81645247
[9,] -0.48846239 -0.01648678 -0.81645247 -1.52307859
[10,] -0.01648678 -0.81645247 -1.52307859 -0.52175913
[11,] -0.81645247 -1.52307859 -0.52175913 -0.39312043
[12,] -1.52307859 -0.52175913 -0.39312043 -0.91594223
[13,] -0.52175913 -0.39312043 -0.91594223 -1.09634249
[14,] -0.39312043 -0.91594223 -1.09634249 -0.35724919
[15,] -0.91594223 -1.09634249 -0.35724919 -0.44356614
[16,] -1.09634249 -0.35724919 -0.44356614 0.30648305
[17,] -0.35724919 -0.44356614 0.30648305 0.04032364
[18,] -0.44356614 0.30648305 0.04032364 0.03155607
[19,] 0.30648305 0.04032364 0.03155607 0.38637807
[20,] 0.04032364 0.03155607 0.38637807 -0.35427423
[21,] 0.03155607 0.38637807 -0.35427423 -0.98731282
[22,] 0.38637807 -0.35427423 -0.98731282 -0.11910883
[23,] -0.35427423 -0.98731282 -0.11910883 -0.07126621
[24,] -0.98731282 -0.11910883 -0.07126621 -0.60282698
[25,] -0.11910883 -0.07126621 -0.60282698 -0.22238880
[26,] -0.07126621 -0.60282698 -0.22238880 -0.14521130
[27,] -0.60282698 -0.22238880 -0.14521130 -0.14605516
[28,] -0.22238880 -0.14521130 -0.14605516 0.45424450
[29,] -0.14521130 -0.14605516 0.45424450 0.11029257
[30,] -0.14605516 0.45424450 0.11029257 -0.15412190
[31,] 0.45424450 0.11029257 -0.15412190 0.66984377
[32,] 0.11029257 -0.15412190 0.66984377 -0.03632466
[33,] -0.15412190 0.66984377 -0.03632466 -0.64978282
[34,] 0.66984377 -0.03632466 -0.64978282 0.32943892
[35,] -0.03632466 -0.64978282 0.32943892 0.39741977
[36,] -0.64978282 0.32943892 0.39741977 -0.23610512
[37,] 0.32943892 0.39741977 -0.23610512 0.03304356
[38,] 0.39741977 -0.23610512 0.03304356 0.09523180
[39,] -0.23610512 0.03304356 0.09523180 0.18124839
[40,] 0.03304356 0.09523180 0.18124839 0.82876134
[41,] 0.09523180 0.18124839 0.82876134 0.72837052
[42,] 0.18124839 0.82876134 0.72837052 0.43035895
[43,] 0.82876134 0.72837052 0.43035895 0.68470430
[44,] 0.72837052 0.43035895 0.68470430 0.33398719
[45,] 0.43035895 0.68470430 0.33398719 -0.45334920
[46,] 0.68470430 0.33398719 -0.45334920 0.70019415
[47,] 0.33398719 -0.45334920 0.70019415 0.85530720
[48,] -0.45334920 0.70019415 0.85530720 0.13284797
[49,] 0.70019415 0.85530720 0.13284797 0.57919310
[50,] 0.85530720 0.13284797 0.57919310 0.64756012
[51,] 0.13284797 0.57919310 0.64756012 0.56636356
[52,] 0.57919310 0.64756012 0.56636356 1.26098968
[53,] 0.64756012 0.56636356 1.26098968 1.04333082
[54,] 0.56636356 1.26098968 1.04333082 0.96081840
[55,] 1.26098968 1.04333082 0.96081840 1.48700134
[56,] 1.04333082 0.96081840 1.48700134 0.72658268
[57,] 0.96081840 1.48700134 0.72658268 -0.07816013
[58,] 1.48700134 0.72658268 -0.07816013 1.13074907
[59,] 0.72658268 -0.07816013 1.13074907 1.17565963
[60,] -0.07816013 1.13074907 1.17565963 0.65421089
[61,] 1.13074907 1.17565963 0.65421089 0.70030857
[62,] 1.17565963 0.65421089 0.70030857 0.86733579
[63,] 0.65421089 0.70030857 0.86733579 0.98709251
[64,] 0.70030857 0.86733579 0.98709251 1.76719172
[65,] 0.86733579 0.98709251 1.76719172 1.27147358
[66,] 0.98709251 1.76719172 1.27147358 1.56630995
[67,] 1.76719172 1.27147358 1.56630995 1.47737561
[68,] 1.27147358 1.56630995 1.47737561 1.22696350
[69,] 1.56630995 1.47737561 1.22696350 0.16621623
[70,] 1.47737561 1.22696350 0.16621623 1.46842210
[71,] 1.22696350 0.16621623 1.46842210 1.51729451
[72,] 0.16621623 1.46842210 1.51729451 0.84742640
[73,] 1.46842210 1.51729451 0.84742640 1.02187673
[74,] 1.51729451 0.84742640 1.02187673 1.27364760
[75,] 0.84742640 1.02187673 1.27364760 1.24216730
[76,] 1.02187673 1.27364760 1.24216730 1.80211897
[77,] 1.27364760 1.24216730 1.80211897 1.55941604
[78,] 1.24216730 1.80211897 1.55941604 1.41198355
[79,] 1.80211897 1.55941604 1.41198355 2.15312214
[80,] 1.55941604 1.41198355 2.15312214 1.29698964
[81,] 1.41198355 2.15312214 1.29698964 0.22255466
x_test
[1] 457318 460735 413900 426097 443700 441499 480649 463680 453372 505190 445332 370211
lstm_model <- keras_model_sequential()
lstm_model %>%
layer_lstm(units = 50, # size of the layer
batch_input_shape = c(1, 12, 1), # batch size, timesteps, features
return_sequences = TRUE,
stateful = TRUE) %>%
# fraction of the units to drop for the linear transformation of the inputs
layer_dropout(rate = 0.5) %>%
layer_lstm(units = 50,
return_sequences = TRUE,
stateful = TRUE) %>%
layer_dropout(rate = 0.5) %>%
time_distributed(keras::layer_dense(units = 1))
lstm_model %>%
compile(loss = 'mae', optimizer = 'adam', metrics = 'accuracy')
summary(lstm_model)
Model: "sequential_1"
________________________________________________________________________________________________________
Layer (type) Output Shape Param #
========================================================================================================
lstm_3 (LSTM) (1, 12, 50) 10400
dropout_3 (Dropout) (1, 12, 50) 0
lstm_2 (LSTM) (1, 12, 50) 20200
dropout_2 (Dropout) (1, 12, 50) 0
time_distributed_1 (TimeDistributed) (1, 12, 1) 51
========================================================================================================
Total params: 30,651
Trainable params: 30,651
Non-trainable params: 0
________________________________________________________________________________________________________
x_train_arr
, , 1
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] -1.55543135 -1.66842288 -1.30760804 -1.09644261 -0.97200891 -0.73753004 -1.39953165 -1.89709484
[2,] -1.66842288 -1.30760804 -1.09644261 -0.97200891 -0.73753004 -1.39953165 -1.89709484 -1.06956779
[3,] -1.30760804 -1.09644261 -0.97200891 -0.73753004 -1.39953165 -1.89709484 -1.06956779 -1.31826357
[4,] -1.09644261 -0.97200891 -0.73753004 -1.39953165 -1.89709484 -1.06956779 -1.31826357 -1.74451337
[5,] -0.97200891 -0.73753004 -1.39953165 -1.89709484 -1.06956779 -1.31826357 -1.74451337 -1.48976754
[6,] -0.73753004 -1.39953165 -1.89709484 -1.06956779 -1.31826357 -1.74451337 -1.48976754 -1.45092134
[7,] -1.39953165 -1.89709484 -1.06956779 -1.31826357 -1.74451337 -1.48976754 -1.45092134 -1.59595097
[8,] -1.89709484 -1.06956779 -1.31826357 -1.74451337 -1.48976754 -1.45092134 -1.59595097 -0.99469303
[9,] -1.06956779 -1.31826357 -1.74451337 -1.48976754 -1.45092134 -1.59595097 -0.99469303 -1.04460954
[10,] -1.31826357 -1.74451337 -1.48976754 -1.45092134 -1.59595097 -0.99469303 -1.04460954 -0.84009488
[11,] -1.74451337 -1.48976754 -1.45092134 -1.59595097 -0.99469303 -1.04460954 -0.84009488 -0.52095818
[12,] -1.48976754 -1.45092134 -1.59595097 -0.99469303 -1.04460954 -0.84009488 -0.52095818 -1.22091923
[13,] -1.45092134 -1.59595097 -0.99469303 -1.04460954 -0.84009488 -0.52095818 -1.22091923 -1.91334273
[14,] -1.59595097 -0.99469303 -1.04460954 -0.84009488 -0.52095818 -1.22091923 -1.91334273 -0.89284333
[15,] -0.99469303 -1.04460954 -0.84009488 -0.52095818 -1.22091923 -1.91334273 -0.89284333 -1.03305294
[16,] -1.04460954 -0.84009488 -0.52095818 -1.22091923 -1.91334273 -0.89284333 -1.03305294 -1.35835411
[17,] -0.84009488 -0.52095818 -1.22091923 -1.91334273 -0.89284333 -1.03305294 -1.35835411 -1.21451161
[18,] -0.52095818 -1.22091923 -1.91334273 -0.89284333 -1.03305294 -1.35835411 -1.21451161 -0.81260504
[19,] -1.22091923 -1.91334273 -0.89284333 -1.03305294 -1.35835411 -1.21451161 -0.81260504 -0.80282198
[20,] -1.91334273 -0.89284333 -1.03305294 -1.35835411 -1.21451161 -0.81260504 -0.80282198 -0.46919662
[21,] -0.89284333 -1.03305294 -1.35835411 -1.21451161 -0.81260504 -0.80282198 -0.46919662 -0.55997601
[22,] -1.03305294 -1.35835411 -1.21451161 -0.81260504 -0.80282198 -0.46919662 -0.55997601 -0.48846239
[23,] -1.35835411 -1.21451161 -0.81260504 -0.80282198 -0.46919662 -0.55997601 -0.48846239 -0.01648678
[24,] -1.21451161 -0.81260504 -0.80282198 -0.46919662 -0.55997601 -0.48846239 -0.01648678 -0.81645247
[25,] -0.81260504 -0.80282198 -0.46919662 -0.55997601 -0.48846239 -0.01648678 -0.81645247 -1.52307859
[26,] -0.80282198 -0.46919662 -0.55997601 -0.48846239 -0.01648678 -0.81645247 -1.52307859 -0.52175913
[27,] -0.46919662 -0.55997601 -0.48846239 -0.01648678 -0.81645247 -1.52307859 -0.52175913 -0.39312043
[28,] -0.55997601 -0.48846239 -0.01648678 -0.81645247 -1.52307859 -0.52175913 -0.39312043 -0.91594223
[29,] -0.48846239 -0.01648678 -0.81645247 -1.52307859 -0.52175913 -0.39312043 -0.91594223 -1.09634249
[30,] -0.01648678 -0.81645247 -1.52307859 -0.52175913 -0.39312043 -0.91594223 -1.09634249 -0.35724919
[31,] -0.81645247 -1.52307859 -0.52175913 -0.39312043 -0.91594223 -1.09634249 -0.35724919 -0.44356614
[32,] -1.52307859 -0.52175913 -0.39312043 -0.91594223 -1.09634249 -0.35724919 -0.44356614 0.30648305
[33,] -0.52175913 -0.39312043 -0.91594223 -1.09634249 -0.35724919 -0.44356614 0.30648305 0.04032364
[34,] -0.39312043 -0.91594223 -1.09634249 -0.35724919 -0.44356614 0.30648305 0.04032364 0.03155607
[35,] -0.91594223 -1.09634249 -0.35724919 -0.44356614 0.30648305 0.04032364 0.03155607 0.38637807
[36,] -1.09634249 -0.35724919 -0.44356614 0.30648305 0.04032364 0.03155607 0.38637807 -0.35427423
[37,] -0.35724919 -0.44356614 0.30648305 0.04032364 0.03155607 0.38637807 -0.35427423 -0.98731282
[38,] -0.44356614 0.30648305 0.04032364 0.03155607 0.38637807 -0.35427423 -0.98731282 -0.11910883
[39,] 0.30648305 0.04032364 0.03155607 0.38637807 -0.35427423 -0.98731282 -0.11910883 -0.07126621
[40,] 0.04032364 0.03155607 0.38637807 -0.35427423 -0.98731282 -0.11910883 -0.07126621 -0.60282698
[41,] 0.03155607 0.38637807 -0.35427423 -0.98731282 -0.11910883 -0.07126621 -0.60282698 -0.22238880
[42,] 0.38637807 -0.35427423 -0.98731282 -0.11910883 -0.07126621 -0.60282698 -0.22238880 -0.14521130
[43,] -0.35427423 -0.98731282 -0.11910883 -0.07126621 -0.60282698 -0.22238880 -0.14521130 -0.14605516
[44,] -0.98731282 -0.11910883 -0.07126621 -0.60282698 -0.22238880 -0.14521130 -0.14605516 0.45424450
[45,] -0.11910883 -0.07126621 -0.60282698 -0.22238880 -0.14521130 -0.14605516 0.45424450 0.11029257
[46,] -0.07126621 -0.60282698 -0.22238880 -0.14521130 -0.14605516 0.45424450 0.11029257 -0.15412190
[47,] -0.60282698 -0.22238880 -0.14521130 -0.14605516 0.45424450 0.11029257 -0.15412190 0.66984377
[48,] -0.22238880 -0.14521130 -0.14605516 0.45424450 0.11029257 -0.15412190 0.66984377 -0.03632466
[49,] -0.14521130 -0.14605516 0.45424450 0.11029257 -0.15412190 0.66984377 -0.03632466 -0.64978282
[50,] -0.14605516 0.45424450 0.11029257 -0.15412190 0.66984377 -0.03632466 -0.64978282 0.32943892
[51,] 0.45424450 0.11029257 -0.15412190 0.66984377 -0.03632466 -0.64978282 0.32943892 0.39741977
[52,] 0.11029257 -0.15412190 0.66984377 -0.03632466 -0.64978282 0.32943892 0.39741977 -0.23610512
[53,] -0.15412190 0.66984377 -0.03632466 -0.64978282 0.32943892 0.39741977 -0.23610512 0.03304356
[54,] 0.66984377 -0.03632466 -0.64978282 0.32943892 0.39741977 -0.23610512 0.03304356 0.09523180
[55,] -0.03632466 -0.64978282 0.32943892 0.39741977 -0.23610512 0.03304356 0.09523180 0.18124839
[56,] -0.64978282 0.32943892 0.39741977 -0.23610512 0.03304356 0.09523180 0.18124839 0.82876134
[57,] 0.32943892 0.39741977 -0.23610512 0.03304356 0.09523180 0.18124839 0.82876134 0.72837052
[58,] 0.39741977 -0.23610512 0.03304356 0.09523180 0.18124839 0.82876134 0.72837052 0.43035895
[59,] -0.23610512 0.03304356 0.09523180 0.18124839 0.82876134 0.72837052 0.43035895 0.68470430
[60,] 0.03304356 0.09523180 0.18124839 0.82876134 0.72837052 0.43035895 0.68470430 0.33398719
[61,] 0.09523180 0.18124839 0.82876134 0.72837052 0.43035895 0.68470430 0.33398719 -0.45334920
[62,] 0.18124839 0.82876134 0.72837052 0.43035895 0.68470430 0.33398719 -0.45334920 0.70019415
[63,] 0.82876134 0.72837052 0.43035895 0.68470430 0.33398719 -0.45334920 0.70019415 0.85530720
[64,] 0.72837052 0.43035895 0.68470430 0.33398719 -0.45334920 0.70019415 0.85530720 0.13284797
[65,] 0.43035895 0.68470430 0.33398719 -0.45334920 0.70019415 0.85530720 0.13284797 0.57919310
[66,] 0.68470430 0.33398719 -0.45334920 0.70019415 0.85530720 0.13284797 0.57919310 0.64756012
[67,] 0.33398719 -0.45334920 0.70019415 0.85530720 0.13284797 0.57919310 0.64756012 0.56636356
[68,] -0.45334920 0.70019415 0.85530720 0.13284797 0.57919310 0.64756012 0.56636356 1.26098968
[69,] 0.70019415 0.85530720 0.13284797 0.57919310 0.64756012 0.56636356 1.26098968 1.04333082
[70,] 0.85530720 0.13284797 0.57919310 0.64756012 0.56636356 1.26098968 1.04333082 0.96081840
[71,] 0.13284797 0.57919310 0.64756012 0.56636356 1.26098968 1.04333082 0.96081840 1.48700134
[72,] 0.57919310 0.64756012 0.56636356 1.26098968 1.04333082 0.96081840 1.48700134 0.72658268
[73,] 0.64756012 0.56636356 1.26098968 1.04333082 0.96081840 1.48700134 0.72658268 -0.07816013
[74,] 0.56636356 1.26098968 1.04333082 0.96081840 1.48700134 0.72658268 -0.07816013 1.13074907
[75,] 1.26098968 1.04333082 0.96081840 1.48700134 0.72658268 -0.07816013 1.13074907 1.17565963
[76,] 1.04333082 0.96081840 1.48700134 0.72658268 -0.07816013 1.13074907 1.17565963 0.65421089
[77,] 0.96081840 1.48700134 0.72658268 -0.07816013 1.13074907 1.17565963 0.65421089 0.70030857
[78,] 1.48700134 0.72658268 -0.07816013 1.13074907 1.17565963 0.65421089 0.70030857 0.86733579
[79,] 0.72658268 -0.07816013 1.13074907 1.17565963 0.65421089 0.70030857 0.86733579 0.98709251
[80,] -0.07816013 1.13074907 1.17565963 0.65421089 0.70030857 0.86733579 0.98709251 1.76719172
[81,] 1.13074907 1.17565963 0.65421089 0.70030857 0.86733579 0.98709251 1.76719172 1.27147358
[,9] [,10] [,11] [,12]
[1,] -1.06956779 -1.31826357 -1.74451337 -1.48976754
[2,] -1.31826357 -1.74451337 -1.48976754 -1.45092134
[3,] -1.74451337 -1.48976754 -1.45092134 -1.59595097
[4,] -1.48976754 -1.45092134 -1.59595097 -0.99469303
[5,] -1.45092134 -1.59595097 -0.99469303 -1.04460954
[6,] -1.59595097 -0.99469303 -1.04460954 -0.84009488
[7,] -0.99469303 -1.04460954 -0.84009488 -0.52095818
[8,] -1.04460954 -0.84009488 -0.52095818 -1.22091923
[9,] -0.84009488 -0.52095818 -1.22091923 -1.91334273
[10,] -0.52095818 -1.22091923 -1.91334273 -0.89284333
[11,] -1.22091923 -1.91334273 -0.89284333 -1.03305294
[12,] -1.91334273 -0.89284333 -1.03305294 -1.35835411
[13,] -0.89284333 -1.03305294 -1.35835411 -1.21451161
[14,] -1.03305294 -1.35835411 -1.21451161 -0.81260504
[15,] -1.35835411 -1.21451161 -0.81260504 -0.80282198
[16,] -1.21451161 -0.81260504 -0.80282198 -0.46919662
[17,] -0.81260504 -0.80282198 -0.46919662 -0.55997601
[18,] -0.80282198 -0.46919662 -0.55997601 -0.48846239
[19,] -0.46919662 -0.55997601 -0.48846239 -0.01648678
[20,] -0.55997601 -0.48846239 -0.01648678 -0.81645247
[21,] -0.48846239 -0.01648678 -0.81645247 -1.52307859
[22,] -0.01648678 -0.81645247 -1.52307859 -0.52175913
[23,] -0.81645247 -1.52307859 -0.52175913 -0.39312043
[24,] -1.52307859 -0.52175913 -0.39312043 -0.91594223
[25,] -0.52175913 -0.39312043 -0.91594223 -1.09634249
[26,] -0.39312043 -0.91594223 -1.09634249 -0.35724919
[27,] -0.91594223 -1.09634249 -0.35724919 -0.44356614
[28,] -1.09634249 -0.35724919 -0.44356614 0.30648305
[29,] -0.35724919 -0.44356614 0.30648305 0.04032364
[30,] -0.44356614 0.30648305 0.04032364 0.03155607
[31,] 0.30648305 0.04032364 0.03155607 0.38637807
[32,] 0.04032364 0.03155607 0.38637807 -0.35427423
[33,] 0.03155607 0.38637807 -0.35427423 -0.98731282
[34,] 0.38637807 -0.35427423 -0.98731282 -0.11910883
[35,] -0.35427423 -0.98731282 -0.11910883 -0.07126621
[36,] -0.98731282 -0.11910883 -0.07126621 -0.60282698
[37,] -0.11910883 -0.07126621 -0.60282698 -0.22238880
[38,] -0.07126621 -0.60282698 -0.22238880 -0.14521130
[39,] -0.60282698 -0.22238880 -0.14521130 -0.14605516
[40,] -0.22238880 -0.14521130 -0.14605516 0.45424450
[41,] -0.14521130 -0.14605516 0.45424450 0.11029257
[42,] -0.14605516 0.45424450 0.11029257 -0.15412190
[43,] 0.45424450 0.11029257 -0.15412190 0.66984377
[44,] 0.11029257 -0.15412190 0.66984377 -0.03632466
[45,] -0.15412190 0.66984377 -0.03632466 -0.64978282
[46,] 0.66984377 -0.03632466 -0.64978282 0.32943892
[47,] -0.03632466 -0.64978282 0.32943892 0.39741977
[48,] -0.64978282 0.32943892 0.39741977 -0.23610512
[49,] 0.32943892 0.39741977 -0.23610512 0.03304356
[50,] 0.39741977 -0.23610512 0.03304356 0.09523180
[51,] -0.23610512 0.03304356 0.09523180 0.18124839
[52,] 0.03304356 0.09523180 0.18124839 0.82876134
[53,] 0.09523180 0.18124839 0.82876134 0.72837052
[54,] 0.18124839 0.82876134 0.72837052 0.43035895
[55,] 0.82876134 0.72837052 0.43035895 0.68470430
[56,] 0.72837052 0.43035895 0.68470430 0.33398719
[57,] 0.43035895 0.68470430 0.33398719 -0.45334920
[58,] 0.68470430 0.33398719 -0.45334920 0.70019415
[59,] 0.33398719 -0.45334920 0.70019415 0.85530720
[60,] -0.45334920 0.70019415 0.85530720 0.13284797
[61,] 0.70019415 0.85530720 0.13284797 0.57919310
[62,] 0.85530720 0.13284797 0.57919310 0.64756012
[63,] 0.13284797 0.57919310 0.64756012 0.56636356
[64,] 0.57919310 0.64756012 0.56636356 1.26098968
[65,] 0.64756012 0.56636356 1.26098968 1.04333082
[66,] 0.56636356 1.26098968 1.04333082 0.96081840
[67,] 1.26098968 1.04333082 0.96081840 1.48700134
[68,] 1.04333082 0.96081840 1.48700134 0.72658268
[69,] 0.96081840 1.48700134 0.72658268 -0.07816013
[70,] 1.48700134 0.72658268 -0.07816013 1.13074907
[71,] 0.72658268 -0.07816013 1.13074907 1.17565963
[72,] -0.07816013 1.13074907 1.17565963 0.65421089
[73,] 1.13074907 1.17565963 0.65421089 0.70030857
[74,] 1.17565963 0.65421089 0.70030857 0.86733579
[75,] 0.65421089 0.70030857 0.86733579 0.98709251
[76,] 0.70030857 0.86733579 0.98709251 1.76719172
[77,] 0.86733579 0.98709251 1.76719172 1.27147358
[78,] 0.98709251 1.76719172 1.27147358 1.56630995
[79,] 1.76719172 1.27147358 1.56630995 1.47737561
[80,] 1.27147358 1.56630995 1.47737561 1.22696350
[81,] 1.56630995 1.47737561 1.22696350 0.16621623
lstm_forecast
[1] 465917.1 459967.8 431601.3 445565.1 454487.2 452646.0 473347.1 464869.5 459030.7 483594.9 451595.8
[12] 388634.7
X résultats / prédictions par input donc > transforme pour une seule prédiciton
fitted
[1] NA NA NA NA NA NA NA NA NA NA NA
[12] NA 267441.0 276630.0 300621.4 312701.4 321924.5 334378.2 295979.3 270254.5 313241.4 299018.3
[23] 276146.8 288498.6 289306.4 281410.5 320041.4 316634.1 330876.5 349002.1 305612.8 273493.5 324196.6
[34] 315357.1 297770.5 307226.9 328723.5 328684.4 352765.8 347217.2 357908.5 384269.0 332566.9 294751.7
[45] 351099.6 360352.3 326131.5 314851.8 361135.6 356703.2 400317.6 386984.8 391129.2 409294.2 363424.4
[56] 326438.8 380000.1 383682.6 348595.2 374930.3 378650.3 378419.1 413905.5 395566.9 381267.7 429096.4
[67] 384912.8 341814.3 409752.1 416403.0 372465.4 391073.5 395191.0 399341.2 436430.1 431686.3 414679.5
[78] 427361.3 404264.7 352500.4 428291.2 443698.8 390184.4 419083.8 426079.6 420608.5 454593.3 445368.0
[89] 440067.2 461678.5 421178.8 365821.4 445400.8 448406.3 417486.0 429397.1 436861.1 442160.6 470067.8
[100] 453221.9 463993.0 459793.7 448000.9 381294.3
lstm_forecast <- ts(lstm_forecast,
start = c(2019, 1),
end = c(2019, 12),
frequency = 12
)
lstm_forecast_display <- window(lstm_forecast, start= c(2019,1), end = c(2019,8))
input_ts <- ts(data$y,
start = c(2011, 1),
end = c(2018, 12),
frequency = 12)
lstm_forecast_display
Jan Feb Mar Apr May Jun Jul Aug
2019 462273.3 459219.5 427489.3 443785.4 453255.7 451090.3 471201.3 462568.0
data_ts_test
Jan Feb Mar Apr May Jun Jul Aug
2019 443700 441499 480649 463680 453372 505190 445332 370211
plot(input_ts, xlim=c(2011,2020))
#lines(data_ts_test)
lines(lstm_forecast_display, col=3)
NA
NA
NA
Affichage GGplot
DataAffichageGGplot$LSTM_Modele <- fitted
Affichage_Prediction(DataAffichageGGplot, DataAffichageGGplot$LSTM_Modele)
Warning: Removed 98 row(s) containing missing values (geom_path).
Warning: Removed 98 row(s) containing missing values (geom_path).
Warning: Removed 12 row(s) containing missing values (geom_path).
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows
Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
famille de police introuvable dans la base de données des polices Windows